﻿using System;
using System.Linq.Expressions;

namespace FluentExport.CSVExport.Interfaces
{
    public interface ICSVExport
    {
        ICSVExport CreateSource<TSource>(Expression<Func<TSource, object>> source);

        ICSVExport CreateSource<TSource>(params Expression<Func<TSource, object>>[] sources);

        ICSVCompoundSource<TSource> CreateCompoundSource<TSource>();

        ICSVExport Header(string header);

        ICSVExport Headers(params string[] headers);

        CSV Export(object data);
    }
}
